iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0
自我挑戰組

雲端運算系列 第 23

DAY23--雲端運算學習筆記(資料處理模型)

  • 分享至 

  • xImage
  •  

二、深入探討雲端運算

(四)服務模式

2.平台即服務

有關於平台即服務的定義、架構和基本特性在前面有提到過。
接下來來聊聊平台即服務的相關技術。
B.資料處理模型
a.簡介
(1)平行化
為了處理更大量的資料而發展出"平行化"的概念。

  • 解決同步的方法:
    ►號誌(解決基礎的同步問題)
    ►條件變數(解決較複雜的同步問題,設立某個條件,工作單位需等待條件變數成立才能繼續工作,但可先執行完其他的工作單位)
    ►障礙(先設置一個障礙,每個工作單位需要全數符合此障礙的條件才能繼續執行工作)
  • 無法解決同步問題時出現的情況:
    ►死結、活結(哲學家進餐問題)
    ►競賽情況

(2)現有方式

  • 實作平行處理的程式設計模型:
    ►共享記憶體(多個行程共用記憶體空間,藉由記憶體達成彼此之間的資料取得與交換)
    ►訊息傳送(透過網路使得不同機器之間的行程可以互相交換資料)
    ►平行程式的設計模式分成主從模式、生產者消費者模式、共享工作佇列模式。

b.MapReduce
因為資料量越來越龐大,傳統的資料處理方式已經無法使用,所以Google發展出MapReduce的方式處理資料。
(1)傳統方式與MapReduce的比較
過去處理資料的方式是將資料搬移到要執行計算的節點上再進行運算分析,但是很耗時。而MapReduce是一個分散式計算模型,作法相反的是將計算搬移到資料上。
另外,傳統上硬體受限時,通常是採"向上擴展"的方式,也就是在同一台機器上增加處理器核心數目與共享記憶體大小,但是此方式容易使硬體超過負荷。因此而後發展出"向外擴展"的方式,增加機器的數量,有更高的延展性同時也可以節省成本。
(2)程式設計模型
目的是要簡化傳統處理大規模資料的過程,並擷取部分使其功能抽象化。

  • 達成抽象化的實現所需要做的事:
    ►工作單位排程(指派工作單位執行映射或是簡化函式)
    ►資料分配(在MapReduce的框架下將程式搬往資料所在位置)
    ►同步
    ►處理錯誤和失效(偵錯並重新處理)
    ►結合分散式檔案系統(檔案系統的部分操作也包含在整個框架之中)

(2)框架實作
►硬體環境:一般電腦
►軟體環境:Google檔案系統(GFS)、工作排程系統
►運作流程:
使用者的程式需先分叉成Master(唯一)、Worker(多個)兩個角色,其中Worker還分成Mapper及Reducer兩種類型。就框架的輸入/出而言,輸入是藉著分散式儲存系統與裝置,將使用者欲處理之檔案資料分散在不同的實體機器上。透過Mapper執行之後,其結果會寫到本地端的磁碟上,而Reducer便將其負責部分從遠端讀到自己機器上執行任務,再輸出最終結果。
(3)框架特性
►容錯性:
Master失效=>從距離失效前的最近一個檢查點來恢復工作。
Worker失效=>Master會定期詢問進行偵測,Mapper失效時需重新執行進行中和執行完畢的任務,而Reducer只需重新執行進行中的的任務,兩者差別在於Mapper儲存於該Worker本地端的檔案系統中,而Reducer儲存再全域的檔案系統上。
►區域性:
將一大檔案資料切割成數個chunk,然後分散到叢集中的數個機器上。Mapper會直接在這幾台機器上執行操作,再經由Reducer將這些處理後的資料取回彙整。
►細膩度:
整個框架的理想情況。Mapper和Reducer的任務數量應該比叢集之機器數量越多越好,這些任務執行順序的安排可採用管線的方式進行。
(3)框架精煉
►輸入與輸出格式:為了方便使用者,預設提供常用的輸出輸入格式。
►分割與結合函式:這兩種函式皆於Mapper處理完畢之後執行,可增進客製化與最佳化。

資料來源

1.《雲端計算》 鍾葉青, 鍾武君(2013)。台灣東華書局股份有限公司


上一篇
DAY22--雲端運算學習筆記(檔案系統)
下一篇
DAY24--雲端運算學習筆記(資料庫)-1
系列文
雲端運算30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言